//package zz.demo.springCloud.config.securityService;
//
//import org.springframework.core.convert.converter.Converter;
//import org.springframework.core.serializer.support.DeserializingConverter;
//import org.springframework.core.serializer.support.SerializingConverter;
//import org.springframework.util.Assert;
//
//import java.nio.charset.Charset;
//
///**
// * Created by zhangzheng on 2017-6-29.
// */
//public class CustomRedisSerializer implements RedisSerializer<Object> {
//    private Charset charset;
//    private final Converter<Object, byte[]> serializer;
//    private final Converter<byte[], Object> deserializer;
//
//    public CustomRedisSerializer(){
//        this(Charset.forName("UTF8"),new SerializingConverter(), new DeserializingConverter());
//    }
//
//    public CustomRedisSerializer(Charset charset){
//        this(charset,new SerializingConverter(), new DeserializingConverter());
//    }
//
//    public CustomRedisSerializer(ClassLoader classLoader){
//        this(Charset.forName("UTF8"),new SerializingConverter(),new DeserializingConverter(classLoader));
//    }
//
//    public CustomRedisSerializer(Charset charset,Converter<Object,byte[]> serializer,Converter<byte[],Object>
//            deserializer){
//        Assert.notNull(charset, "Charset must not be null!");
//        Assert.notNull(serializer, "Serializer must not be null!");
//        Assert.notNull(deserializer, "Deserializer must not be null!");
//        this.charset = charset ;
//        this.serializer = serializer ;
//        this.deserializer = deserializer ;
//    }
//
//    @Override
//    public byte[] serialize(Object o) throws SerializationException {
//        if(o == null) {
//            return new byte[0];
//        } else {
//            try {
//                return o.toString().getBytes(this.charset);
//            } catch (Exception var3) {
//                throw new SerializationException("Cannot serialize", var3);
//            }
//        }
//    }
//
//    @Override
//    public Object deserialize(byte[] bytes)  {
//        if( bytes == null || bytes.length == 0 ) {
//            return null;
//        } else {
//            try {
//                return this.deserializer.convert(bytes);
//            } catch (Exception var3) {
//                throw new SerializationException("Cannot deserialize", var3);
//            }
//        }
//    }
//}
